﻿import idv.ben.gc4flash.chart.*;
import idv.ben.gc4flash.dataLine.*;
import idv.ben.gc4flash.encode.*;
import idv.ben.gc4flash.fill.*;
import idv.ben.gc4flash.util.*;
/**
* Venn diagrams。<br>
* 參考 Google Chart API：<a href="http://code.google.com/apis/chart/#venn" target="_blank">http://code.google.com/apis/chart/#venn</a><br>
*/
class idv.ben.gc4flash.chart.VennDiagramsChart extends AbstractChart {
	/**
	* Venn diagrams<br>
	* <img src="http://chart.apis.google.com/chart?cht=v&chs=200x100&chd=t:100,80,60,30,30,30,10"><br>
	* cht=v
	*/
	public static var CHART_TYPE_VennDiagramsChart:String = "v";
	/**
	* 建構子
	* @param w 圖檔寬度
	* @param h 圖檔高度
	* @param typ 圖形種類，包括：<br>
	* {@link #CHART_TYPE_VennDiagramsChart} = "v"<br>
	*/
	function VennDiagramsChart(w:Number, h:Number, typ:String) {
		super(w, h);
		if (typ == CHART_TYPE_VennDiagramsChart) {
			this.typ = typ;
		} else {
			throw new Error("chart type error!!");
		}
		allowParams = Const.CHT_PARAM_Venn_diagram;
	}
	/**
	* 設定 Venn diagrams 資料
	* @param A 圓A的值
	* @param B 圓B的值
	* @param C 圓C的值
	* @param AnB 圓A與圓B重複的值
	* @param AnC 圓A與圓C重複的值
	* @param BnC 圓B與圓C重複的值
	* @param AnBnC 三圓重複的值
	* @param legendA 圖示說明<br>
	* @param legendB 圖示說明<br>
	* @param legendC 圖示說明<br>
	* <img src="http://chart.apis.google.com/chart?&cht=lc&chd=t:0,30,60,70,90,95,100|20,30,40,50,60,70,80|10,30,40,45,52&chco=ff0000,00ff00,0000ff&chs=250x150&chdl=First|Second|Third"><br>
	* chdl=First|Second|Third&chco=ff0000,00ff00,0000ff<br>
	*/
	public function setLine(A:Number, B:Number, C:Number, AnB:Number, AnC:Number, BnC:Number, AnBnC:Number, legendA:String, legendB:String, legendC:String):Void {
		var ds:ChartDataSet = new ChartDataSet();
		ds.addValue(A);
		ds.addValue(B);
		ds.addValue(C);
		ds.addValue(AnB);
		ds.addValue(AnC);
		ds.addValue(BnC);
		ds.addValue(AnBnC);
		var dataLine:DataLine = new VennDiagramsDataLine([ds], [legendA, legendB, legendC]);
		lines = [{line:dataLine}];
	}
}
